package com.ly.gof.structure.decorator;

/**
 * @author liuyang
 * @des 具体装饰（ConcreteDecorator）角色：实现抽象装饰的相关方法，并给具体构件对象添加附加的责任。
 * 装饰器模式所包含的 4 个角色不是任何时候都要存在的，在有些应用环境下模式是可以简化的，如以下两种情况。
 * (2)如果只有一个具体装饰时，可以将抽象装饰和具体装饰合并
 * @Version 1.0
 * @Date: 23/07/2021 14:31
 */
public class ConcreteDecortor1 extends Decorator {
    public ConcreteDecortor1(Component component) {
        super(component);
        System.out.println("给基础构建添加新功能");
    }

    @Override
    public void operation() {
        super.operation();
        this.addedFunction();
    }

    public void addedFunction() {
        System.out.println("调用基础构建的新功能");
    }
}
